<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>1. 函数表达式</title>
</head>
<body>
<script>
  /*
  * 使用函数声明和函数表达式最大的区别在于函数声明会将函数进行提升，而表达式不会
  * 使用表达式就像在使用一个普通的变量一样
  *
  * 任何时候只要函数被当成值来使用的话(作为函数参数或者函数返回值) 那么函数就是函数表达式 在这种情况下
  * 函数不会被提升
  *
  * 很多时候两者可以互相代替 但是下面这种情况只能使用函数表达式
  * 因为函数声明存在提升可能在预编译阶段就完成了函数的定义
  * */

  //这样写是错误的
  if (n){
      function f() {
          console.log(1)
      }
  }else{
      function f() {
          console.log(2)
      }
  }

  let f1
  if (condition){
      f1 = function (){
          console.log(1)
      }
  }else{
      f1 = function (){
          console.log(2)
      }
  }
</script>
</body>
</html>